package com.freeLearning.boot.system.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.freeLearning.boot.system.model.bo.FileBO;
import com.freeLearning.boot.system.model.bo.UserExpertiseBO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 个人中心用户信息
 *
 * @author Ray
 * @since 2024/8/13
 */
@EqualsAndHashCode(callSuper = true)
@Schema(description = "个人中心用户信息")
@Data
public class UserProfileVO extends DocumentsVO{

    @Schema(description = "用户ID")
    private Long id;

    @Schema(description = "用户名")
    private String username;

    @Schema(description = "用户昵称")
    private String nickname;

    @Schema(description = "头像URL")
    private String avatar;

    @Schema(description = "性别")
    private Integer gender;

    @Schema(description = "手机号")
    private String mobile;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "部门名称")
    private String deptName;

    @Schema(description = "角色名称")
    private String roleNames;

    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 学历 ID
     */
    @Schema(description = "学历 ID")
    private String academicDegreeId;
    /**
     * 学历 编码
     */
    @Schema(description = "学历 编码")
    private String academicDegreeCode;
    /**
     * 学历名
     */
    @Schema(description = "学历名")
    private String academicDegreeName;

    /**
     * 擅长领域
     */
    @Schema(description = "擅长领域")
    private List<UserExpertiseBO> expertiseList;

    @Schema(description = "学校id")
    private Integer schoolId;

    @Schema(description = "学校名称")
    private String schoolName;
    @Schema(description = "是否是咨询师")
    private Boolean isConsultant;

    @Schema(description = "身份证号")
    private String idCard;

    @Schema(description = "咨询师ID")
    private Long consultantId;

    @Schema(description = "审核人ID")
    private Long auditorId;

    @Schema(description = "审核人姓名")
    private String auditorName;

    @Schema(description = "审核状态（0: 待审核, 1: 审核通过, 2: 审核未通过）")
    private Integer auditStatus;

    @Schema(description = "审核意见")
    private String opinion;

    @Schema(description = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;

}
